home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d26 / cattest.arc / INTEG2.IN1 < prev    next >
Text File  |  1991-07-01  |  2KB  |  99 lines

  1. PROCEDURE Init_Question;
  2. VAR
  3.   dummy_i {integer, may be deleted}
  4.            {integer variables follow:}
  5.         : Integer;
  6.  
  7.        {real variables follow:}
  8.  dummy_r {real, may be deleted}
  9.   ,R_zero
  10.  : Real;
  11.  
  12.        {string variables follow:}
  13.  dummy_s {string, may be deleted}
  14.  ,A_R_zero
  15.  : String;
  16.  
  17. BEGIN
  18. {$I-}
  19. Assign (OldQuestionFile,Progname_string+'.SAV');
  20. Reset(OldQuestionFile);
  21. {$I+}
  22. IF IOResult = 0 THEN {this is a repeat, there was a .SAV file}
  23.    BEGIN
  24. ReadLn(OldQuestionFile,R_zero);
  25.   Close(OldQuestionFile);
  26.   END
  27.   else  {there was no .SAV file, must generate new values}
  28.   BEGIN
  29.  {question creation section 
  30.            creating new values for student variables}
  31.  
  32. R_zero := 0.;
  33.  ReWrite(OldQuestionFile);{ create the .SAV file just in case
  34.                             student needs to quit and do it again}
  35. WriteLn(OldQuestionFile,R_zero);
  36. Close(OldQuestionFile)
  37.   END;
  38.  
  39.  
  40. STR(R_zero:4:2,A_R_zero);
  41. Trim_fore_aft(A_R_zero);
  42.  
  43. question := '';
  44. question2 := '';
  45. question := question + ' The integral from pi to zero of sin(x)cos(x)dx is ? ';
  46.  
  47.  
  48. If MaxAvail < Sizeof(Wrong_Answers) then
  49.   BEGIN
  50.     WriteLn('Not enough memory');
  51.     Noise(Bad);
  52.     halt;
  53.   END ELSE
  54.   BEGIN
  55.     New(RootErrorPtr);
  56.     TempPtr := RootErrorPtr;
  57.     TempPtr^.next := nil;
  58.     TempPtr^.value := -2.;
  59.     TempPtr^.remark := 'Did you integrate sin(x)dx?';
  60.   END;
  61.  
  62. true_answer := R_zero;
  63.  
  64. {$IFDEF Watch_Student}
  65.  WriteLn(Outfile,Time_Stamp);
  66.  WriteLn(OutFile,question);
  67.  WriteLn(OutFile,'R_zero = ',R_zero);
  68.  WriteLn(OutFile,'answer = ',R_zero);
  69. {$ENDIF }
  70.  
  71.  
  72. If MaxAvail < Sizeof(Debug_Lines) then
  73.     BEGIN
  74.       WriteLn('Not enough memory');
  75.       Noise(Bad);
  76.       halt;
  77.     END ELSE
  78.     BEGIN
  79.       New(RootDebugLinePtr);
  80.       TempDebugLinePtr := RootDebugLinePtr;
  81.       TempDebugLinePtr^.next := nil;
  82.       TempDebugLinePtr^.line := 'R_zero = ' + A_R_zero;
  83.     END;
  84.  
  85. If MaxAvail < Sizeof(Debug_Lines) then
  86.     BEGIN
  87.       WriteLn('Not enough memory');
  88.       Noise(Bad);
  89.       halt;
  90.     END ELSE
  91.     BEGIN
  92.       New(GenTempDebugPtr);
  93.       TempDebugLinePtr^.next := GenTempDebugPtr;
  94.       TempDebugLinePtr := GenTempDebugPtr;
  95.       TempDebugLinePtr^.next := nil;
  96.       TempDebugLinePtr^.line := 'R_zero = ' + A_R_zero;
  97.     END;
  98. END {of .IN1};
  99.